// pages/login/login.js
import { toast } from '../../utils/extendApi'
import { reqLogin, reqUserInfo } from '../../api/user'
import { getStorage, setStorage } from '../../utils/storage'
import { userStore } from '../../stores/userStore'
import { ComponentWithStore } from 'mobx-miniprogram-bindings'
import { get } from 'mobx-miniprogram'

ComponentWithStore({
  // 让页面和store关联起来
  storeBindings: {
    store: userStore,
    fields: ['token', 'userInfo'],
    actions: ['setToken', 'setUserInfo']
  },

  methods: {
    // 获取用户的临时登录凭证
    login() {
      wx.login({
        success: async ({ code }) => {
          if (code) {
            // 调用接口 API，传入 code 进行登录
            const res = await reqLogin(code)
            console.log(res.data.token)
            // 登录成功以后将 token 存储到本地
            setStorage('token', res.data.token)
            // 将自定义登录态 token 存储到 Store 对象
            this.setToken(res.data.token)
            // 获取用户信息
            this.getUserInfo()
            // 返回之前的页面
            wx.navigateBack()
            // console.log(getStorage('token'))
          } else {
            wx.toast('授权失败，请重新尝试')
          }
        }
      })
    },

    // 获取用户信息
    async getUserInfo() {
      const { data } = await reqUserInfo()
      // 将用户信息存储到本地
      setStorage('userInfo', data) // 将用户信息存储到 Store
      this.setUserInfo(data)
      
    }
  }
})
